Accelerating the Apple //GS
By John MacLean
Copyright (c) 1990 Apple Users' Group, Sydney
Republished from Applecations, a publication of the Apple Users' Group, Sydney, Australia.
At the heart of the Apple //GS is the 65816 processor, a 16 bit processor capable of full emulation of the 8 bit 65C02 found in previous Apple //s.
This article is the first of two that explain how the Apple //GS could be accelerated through the use of enhanced 65816 processors, and other changes.
^Faster Clock Speeds and Accelerator Cards^
The 65816 in the current Apple //GS runs at approximately 2.7 MHz. This is 2.7 times the speed of previous Apple //s, but many users find that it is still too slow. Plugging a faster processor into the motherboard of the //GS has no effect, because the clock and the other components on the board restrict the speed to 2.7 MHz.
There are two solutions, either redesign the //GS or add an accelerator card. Currently, only the Transwarp GS is available (from Applied Engineering), but ZIP technology apparently demonstrated their GS board at the last ComputerFest (in May).
The Transwarp board is shipped with a 7 MHz processor, replacing the processor on the motherboard of the //GS. This delivers processing speed that is many times faster than a standard GS, but the processor must still slow down to 2.7 MHz when accessing the RAM on the motherboard of the GS and the memory expansion card.
The beauty of the Transwarp board is that it can be upgraded as faster chips become available (up to about 14 MHz). Upgrades up to 10 MHz can be made by simply replacing the processor and the clock crystal, while faster upgrades require faster static RAM chips on the Transwarp board.
Western Design Center (WDC) can currently ship 10 MHz processors, and 14 MHz processors (requiring a 6 volt power supply) in small quantities. Another company, ASIC Enterprises, has recently entered the market, and apparently has 65816 processors capable of running at 18 to 24 MHz in production.
If they are successful, we are likely to see 14 MHz Transwarp cards immediately; and hopefully the introduction of the ZIP GS or a Transwarp GS II that can push the speed of the GS even further.
^Enhancing The Instruction Set and the 65832^
Bill Mench, designer of the 65816, has a dream of an enhanced 65816 that he calls the 65832. It would be fully pin compatible with the current 65816, and offer a larger and more powerful instruction set.
Bill Mench deliberately left one instruction (WDC) unused in the 65816 instruction set, so that 16 bit instructions could be implemented, thus adding up to 256 new instructions.
If such a chip was installed into a current //GS, or an accelerator card such as the Transwarp, there would be no immediate gain in performance. The benefits would only be seen in new software, written to take advantage of the new, more powerful instruction set.
For example, some low level operations, such as integer multiplication, currently take many machine instructions, and would probably be implemented as a single instruction on the 65832.
Features that would be likely in the 65832 include:
- Integer multiplication and division.
- Faster block move instructions (taking 3 cycles per byte moved and working over bank boundaries).
- More addressing modes on common instructions (such as stack indirect indexed long e.g. LDA [$01,s],Y).
- Nibble swapping instructions.
Unfortunately, the 65832 project has apparently been shelved, as WDC cannot justify its design and manufacture without a definite market. This is a pity for the Apple //GS, because it would really help improve the performance of the //GS.
^Removing the Video Bottleneck^
The video hardware carried over from previous Apple //s requires access to the video RAM at 1 MHz. In order to cope with this, the //GS slows down to this speed whenever writes are required to video RAM.
This seemed quite a clever design at the time, but it has turned out to be a real bottleneck in the //GS system. Even with system software 5.0.X, the user interface of the //GS is simply not as responsive as it could be.
The solution to this is to use special RAM chips known as dual port video RAM, or VRAM. These chips have two data lines and two sets of address lines, thus enabling video hardware and programs to access video memory simultaneously. Using these chips, programs could access video memory at full speed, and the video hardware could continue to read from it at 1 MHz.
Unfortunately, the video subsystem is not isolated sufficiently for it to be replaced by a third party product. This means that such an enhancement would either be expensive, or require a redesigned motherboard from Apple. The main advantage of such an enhancement, is that almost all software, including system software such as the Finder, would benefit from it. It would be an essential feature in a new //GS, if such a machine ever eventuates.
^Next Month^
Part two of this article will investigate changes to the 65816 that reduce the number of machine cycles taken for each instruction, thus improving the performance of all existing and future //GS software. These changes include
additional pipelining in the instruction set and a wider (16 bit) data bus for the 65816.

THIS CONTENT COPYRIGHT © 2007, APPLE MACINTOSH USERS' GROUP, SYDNEY
Permission has been obtained to make this material available on the Internet.

Permission is hereby granted for non-profit user groups to republish this content.
PLEASE CREDIT THE AUTHOR AND THE SOURCE: Applecations, publication of the Apple Users' Group, Sydney, Australia

THIS PAGE COPYRIGHT © 2007, ANDREW ROUGHAN